let db = require("../db/index");

//获取全部
exports.all = (req, res) => {
    const sql = "select * from nrj";
    db.query(sql, (err, data) => {
        if (err) {
            return res.send("获取失败" + err.message);
        }
        res.send(data);
    });
};
//注册
exports.signup = (req, res) => {
    const sql1 = "select * from `nrj` where `account` = ?";
    const sql2 = "insert into `nrj` (id,`account`,`passname`, `password`) value (?,?,?,?)";
    db.query(sql1, [req.body.params.account], (err, data) => {
        if (err) {
            return res.send({
                status: 400,
                message: "操作失败",
            });
        }
        if (data.length > 0) {
            return res.send({
                status: 202,
                message: "账号已存在",
            });
        } else {
            db.query(sql2, [req.body.params.id, req.body.params.account, req.body.params.passname, req.body.params.password], (err, data) => {
                if (err) {
                    return res.send({
                        status: 400,
                        message: "注册失败",
                    });
                }
                if (res) {
                    res.send({
                        status: 200,
                        message: "注册成功",
                    });
                }
            });
        }
    });
};
//登录
exports.login = (req, res) => {
    var sql1 = "select * from `nrj` where `account` = ? and `password` = ?";
    var sql2 = "select passname from `nrj` where `account` = ?";
    db.query(sql1, [req.query.account, req.query.password], (err, data) => {
        if (err) {
            return res.send({
                status: 400,
                message: "登录失败",
            });
        }
        if (data.length > 0) {
            db.query(sql2, [req.query.account], (err, data) => {
                if (err) {
                    return res.send("获取失败" + err.message);
                }
                res.send({
                    status: 200,
                    message: "登录成功",
                    passname: data[0].passname,
                });
            });
        } else {
            res.send({
                status: 202,
                message: "用户名或密码错误",
            });
        }
    });
};
// 添加购物车
exports.addshoppingcart = (req, res) => {
    // 查询
    let sql1 = "select shoppingcart from `nrj` where `account` = ?";
    // 修改
    let sql2 = "UPDATE `nrj` SET shoppingcart = ? WHERE `account` = ?";
    // 查询获取原来的数据
    db.query(sql1, [req.body.data.account], (err, data) => {
        // 获取数据库失败
        if (err) {
            // 失败返回
            return res.send("获取失败" + err.message);
        }
        // 获取数据库成功
        if (data.length > 0) {
            // 获取的数据
            let str = data[0].shoppingcart;
            // 定义一个连接数据库的字符串
            let str2;
            // 接住前端发送的数据
            let obj = req.body.data.obj;
            // 定义一个数组接住字符串转过来的数据
            let arr;
            // 判断原来的数据是否为空
            if (str) {
                // 不为空将字符串转化为数组
                arr = JSON.parse(str);
                // 把传送过来的数据push到原来的数据上
                arr.push(obj);
                // 转化成字符串传给数据库
                str2 = JSON.stringify(arr);
            } else {
                //为空时令arr为一个空数组
                arr = [];
                // 把传送过来的数据push到原来的数据上
                arr.push(obj);
                // 转化成字符串传给数据库
                str2 = JSON.stringify(arr);
            }
            // 操作添加数据
            db.query(sql2, [str2, req.body.data.account], (err, data) => {
                // 失败路线
                if (err) {
                    // 失败返回
                    return res.send("获取失败" + err.message);
                }
                // 成功操作
                res.send({
                    status: 200,
                    // 将数据转回json对象传回去
                    data: JSON.parse(str2),
                });
            });
        }
    });
};
// 获取购物车
exports.shoppingcarts = (req, res) => {
    let sql = "select `shoppingcart` from `nrj` where `account` = '" + req.query.account + "'";
    db.query(sql, (err, data) => {
        // 错误走向
        if (err) {
            return res.send("获取失败" + err.message);
        }
        // 定义str接收数据
        let str = data[0].shoppingcart;
        let arr;
        // 判断是否为空
        if (str) {
            // 不为空转成对象
            arr = JSON.parse(str);
        } else {
            // 空取值空数组
            arr = [];
        }
        // 返回数据
        res.send(arr);
    });
};
// 修改购物车
exports.setshoppingcart = (req, res) => {
    let sql = "UPDATE `nrj` SET shoppingcart = ? WHERE `account` = ?";
    let arr = req.body.data.arr;
    let str;
    if (arr.length > 0) {
        str = JSON.stringify(arr);
    } else {
        str = "";
    }
    db.query(sql, [str, req.body.data.account], (err, data) => {
        if (err) {
            return res.send("修改失败" + err.message);
        }
        let arr;
        if (str) {
            arr = JSON.parse(str);
        } else {
            arr = [];
        }
        res.send({
            status: 200,
            message: "修改成功",
            data: arr,
        });
    });
};

// 添加购买记录setPurchaseRecord
exports.setPurchaseRecord = (req, res) => {
    let sql1 = "select allshop from `nrj` where `account` = " + req.body.data.account;
    db.query(sql1, (err, data) => {
        if (err) {
            return res.send("获取失败" + err.message);
        }
        if (data.length > 0) {
            let str = data[0].allshop;
            let arr1 = req.body.data.arr;
            let arr2;
            let str2;
            if (str) {
                arr2 = JSON.parse(str);
                arr2 = arr1.concat(arr2);
                str2 = JSON.stringify(arr2);
            } else {
                arr2 = arr1;
                str2 = JSON.stringify(arr2);
            }
            let sql2 = "UPDATE `nrj` SET allshop = '" + str2 + "' WHERE `account` = " + req.body.data.account;
            db.query(sql2, (err, data) => {
                if (err) {
                    return res.send("添加失败" + err.message);
                }
                res.send("添加成功");
            });
        }
    });
};
// 获取购买记录
exports.getPurchaseRecord = (req, res) => {
    let sql = "select allshop from `nrj` where `account` = " + req.query.account;
    db.query(sql, (err, data) => {
        if (err) {
            return res.send("获取失败" + err.message);
        } else {
            let str = data[0].allshop;
            let arr;
            if (str) {
                arr = JSON.parse(str);
            } else {
                arr = [];
            }
            res.send({
                code: 200,
                data: arr,
            });
        }
    });
};
// exports.allshop = (req, res) => {
//     let sql = "select allshop from `nrj` where `account` = ?";
//     db.query(sql, [req.query.account], (err, data) => {
//         if (err) {
//             return res.send("获取失败" + err.message);
//         }
//         let str = data[0].shoppingcart;
//         let arr;
//         if (str) {
//             arr = JSON.parse(str);
//         } else {
//             arr = [];
//         }
//         res.send(arr);
//     });
// };
